As the table is populated, a second array "rows" is created that links each game object to a table row within the DOM.
On search, we iterate through the "rows" object and filter based on our criteria (console name). If matched, the associated table row within the DOM is shown; else, it is hidden.
On reset, we simply loop back through "rows" and show each.
Clicking on the table headers will result in a sort - first ascending, and subsequently alternating.
On click, JS will find the index of the clicked header and then use the sort method on the array of rows for the corresponding column of the table.